package com.deng.Service;

import com.deng.config.AllParamOfUser;
import com.deng.model.To.UserAndRoles;
import com.deng.model.User;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.util.List;

/**
 * @Author 邓小熙
 * @Date 2022/5/2 11:40
 * @Version 1.0
 */

public interface UserService {
    /**
     * 通过姓名查找用户
     * @param name
     * @return
     */
    User findUserByName(String name);

    /**
     * 通过ID查找用户
     * @param id
     * @return
     */
    User findUserById(int id);

    /**
     * 通过评论人的ID查找用户
     * @param comments_user
     * @return
     */
    User findUsersById(int comments_user);
    /**
     * 个人简介，通过名字查找用户
     * @param userName
     * @return
     */
    User findUsersByName(String userName);

    /**
     * 通过名字找作者
     * @param userName
     * @return
     */
    int findAuthorByName(String userName);

    /**
     * 通过id查找用户姓名
     * @param friend_id
     * @return
     */
    String findUserNameById(int friend_id);

    /**
     * 通过姓名查找该用户详情
     * @param name
     * @return
     */
    AllParamOfUser getUserParam(String name);

    /**
     * 改变用户详情修改
     * @param allParamOfUser
     * @return
     */
    AllParamOfUser edictDetail(AllParamOfUser allParamOfUser);
    /**
     * 更新用户信息
     * @param imgMes
     * @param userName
     * @param realName
     * @param position
     * @param data
     * @param email
     * @param address
     * @param sketch
     * @return
     * @throws ParseException
     */
    int updateUserMes(String imgMes, String userName, String realName, String position, String data, String email, String address, String sketch) throws ParseException;

    /**
     * 更新用户详情
     * @param users
     * @param name
     * @return
     */
    int updateUserMes1(User users, String name);
    /**
     * 人员状态修改
     * @param review
     * @param status
     * @param user
     * @return
     */
    int updateUserStatus(String review, String status, int user);
    /**
     * 显示所有人员（分页）
     * @param pageNum
     * @return
     */
//    List<UserAndRoles> userAndRole((pageNum-1) * limit,limit);
    List<UserAndRoles> userAndRole(int pageNum);
    /**
     * 分页查询所有用户
     * @param page
     * @param limit
     * @return
     */
    List<User> findAllUsers(int page, int limit);
    /**
     * 查询所有用户
     * @return
     */
    List<User> findAllUsers();
    /**
     * 后台文章审查中的文章发表博主部分信息
     * @param id
     * @return
     */
    User checkUserMes(int id);
    /**
     * 改密码
     * @param userName 用户名
     * @param newPassWord 新密码
     * @param oldPassWord 旧密码
     * @return 1
     */
    int updateUserPass(String userName, String newPassword, String oldPassword);
}

